home *** CD-ROM | disk | FTP | other *** search
-
- -- -----------------------------------------------------------------
- -- Init
- -- -----------------------------------------------------------------
- local function prog_init()
- initModels()
- sound_playMusic("music/rybky06.ogg")
- local pokus = getRestartCount()
-
-
- -- -------------------------------------------------------------
- local function prog_init_room()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- room.olebce = 0
- room.odrackovi = 0
- if pokus > 1 and random(100) < 50 then
- room.odrackovi = 1
- end
- room.osklebakovi = random(2000) + 500
- room.osklebu = 0
- room.opadu = 0
- if pokus == 1 then
- room.uvod = 1
- else
- room.uvod = random(3)
- end
-
- return function()
- if no_dialog() and isReady(small) and isReady(big) then
- pom1 = 0
- for key, model in pairs(getModelsTable()) do
- if model ~= konik then
- if model.dir == dir_down and model.Y >= 10 then
- if model:getW() + model:getH() == 3 then
- pom1 = pom1 + 1
- end
- end
- end
- end
- if room.osklebakovi > 0 then
- room.osklebakovi = room.osklebakovi - 1
- end
- if room.uvod == 1 then
- room.uvod = 0
- addm(random(40) + 20, "bot-m-vidis")
- addv(random(10), "bot-v-uveznen"..random(2))
- addm(random(50) + 10, "bot-m-zajem")
- addv(random(10), "bot-v-podivat")
- elseif room.uvod == 2 and small.Y <= 9 then
- room.uvod = 0
- addm(random(40) + 20, "bot-m-vidis")
- addv(random(10), "bot-v-uveznen"..random(2))
- elseif room.olebce == 0 and dist(small, lebzna) < 4 then
- room.olebce = 1
- switch(random(2)){
- [0] = function()
- addv(5, "bot-v-lebka")
- end,
- [1] = function()
- addm(5, "bot-m-vidim")
- end,
- }
- elseif room.odrackovi == 0 and look_at(small, zlaty) and dist(small, zlaty) < 4 and random(100) < 6 then
- room.odrackovi = 1
- addm(5, "bot-m-zivy")
- elseif room.osklebakovi == 0 then
- addv(50, "bot-v-vsim")
- addm(random(20), "bot-m-vypada")
- planSet(sklebak, "cinnost", 10)
- room.osklebakovi = -1
- elseif room.osklebu == 0 and sklebak:isTalking() then
- room.osklebu = 1
- elseif room.osklebu == 1 and not sklebak:isTalking() then
- if dist(small, sklebak) < 3 then
- room.osklebu = 2
- addm(10, "bot-m-ble")
- if random(100) < 60 then
- addv(random(10) + 5, "bot-v-totem")
- end
- else
- room.osklebu = 0
- end
- elseif room.opadu == 0 and pom1 == 1 and random(100) < 5 then
- room.opadu = 1
- addm(10, "bot-m-padaji")
- addv(random(20), "bot-v-vsak"..random(2))
- end
- end
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_sklebak()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- sklebak.cinnost = 0
-
- return function()
- switch(sklebak.cinnost){
- [0] = function()
- sklebak.afaze = 0
- if random(1000) < 5 then
- switch(random(2)){
- [0] = function()
- sklebak.cinnost = 10
- end,
- [1] = function()
- sklebak.cinnost = 20
- end,
- }
- end
- end,
- [10] = function()
- setanim(sklebak, "a2a3a4R")
- sklebak:talk("bot-x-smich", VOLUME_FULL)
- sklebak.cinnost = sklebak.cinnost + 1
- end,
- [11] = function()
- goanim(sklebak)
- if not sklebak:isTalking() then
- sklebak.cinnost = 100
- end
- end,
- [20] = function()
- sklebak.afaze = 5
- sklebak:talk("bot-x-gr"..random(2), VOLUME_FULL)
- sklebak.cinnost = sklebak.cinnost + 1
- end,
- [21] = function()
- if not sklebak:isTalking() then
- sklebak.cinnost = 100
- end
- end,
- [100] = function()
- sklebak.afaze = 0
- sklebak.cinnost = sklebak.cinnost + 1
- end,
- [120] = function()
- sklebak.cinnost = 0
- end,
- default = function()
- sklebak.cinnost = sklebak.cinnost + 1
- end,
- }
- sklebak:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_zlaty()
- local pom1, pom2, pomb1, pomb2 = 0, 0, false, false
-
- setanim(zlaty, "a0d2a1d2R")
-
- return function()
- goanim(zlaty)
- zlaty:updateAnim()
- end
- end
-
- -- -------------------------------------------------------------
- local function prog_init_lebzna()
- return function()
- if odd(game_getCycles()) then
- lebzna.afaze = math.mod(lebzna.afaze + 1, 4)
- lebzna:updateAnim()
- end
- end
- end
-
- -- --------------------
- local update_table = {}
- local subinit
- subinit = prog_init_room()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_sklebak()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_zlaty()
- if subinit then
- table.insert(update_table, subinit)
- end
- subinit = prog_init_lebzna()
- if subinit then
- table.insert(update_table, subinit)
- end
- return update_table
- end
- local update_table = prog_init()
-
-
- -- -----------------------------------------------------------------
- -- Update
- -- -----------------------------------------------------------------
- function prog_update()
- for key, subupdate in pairs(update_table) do
- subupdate()
- end
- end
-
-